<html>
<head><meta charset="utf-8"><title>Case insensitive RFC take two · rustdoc · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/index.html">rustdoc</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html">Case insensitive RFC take two</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="232510588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232510588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232510588">(Mar 30 2021 at 22:57)</a>:</h4>
<p>I wrote up a kinda-RFC, <span class="user-group-mention" data-user-group-id="3925">@T-rustdoc</span> please have a look! <a href="https://hackmd.io/@nbw0Mih0RLieoV6JBAtI3Q/rkXNEQ-Bd/edit">https://hackmd.io/@nbw0Mih0RLieoV6JBAtI3Q/rkXNEQ-Bd/edit</a></p>
<p>Feel free to comment there or here, and fill in some of the blank sections. As I said in the intro: this is currently written in RFC format but at present its purpose is to be discussed amongst the team; and there's a chance we may not need an RFC.</p>



<a name="232514928"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232514928" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232514928">(Mar 30 2021 at 23:46)</a>:</h4>
<blockquote>
<p>Currently rustdoc simply overwrites one file with the other, which means that doc generation on most Windows and Mac systems simply drops some files. This is suboptimal.</p>
</blockquote>
<p>lol understatement of the year <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="232515014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515014">(Mar 30 2021 at 23:47)</a>:</h4>
<blockquote>
<p>Ideally, rustdoc will _never_ link to disambiguation pages on its own; these exist purely to make the URL scheme continue to work.</p>
</blockquote>
<p><span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="232515086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515086">(Mar 30 2021 at 23:48)</a>:</h4>
<blockquote>
<p>For this use case, rustdoc (and cargo doc?) will have a --generate-case-insensitive option that forces the disambiguation behavior regardless of the filesystem being used.</p>
</blockquote>
<p>I don't think this common enough to need a cargo flag. I don't see anyone using it besides the standard library.</p>



<a name="232515132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515132">(Mar 30 2021 at 23:49)</a>:</h4>
<blockquote>
<p>It is a hard error for #[doc(filename)] files to ever clash with other files when compared case insensitively, so you cannot have #[doc(filename = "Bar")] struct Foo; and struct Bar; in the same module.</p>
</blockquote>
<p>this is internally consistent, but did you mean to write <code>doc(filename = "bar")</code> to show that it's case-insensitive?</p>



<a name="232515161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515161">(Mar 30 2021 at 23:49)</a>:</h4>
<p>I didn't but good idea</p>



<a name="232515207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515207">(Mar 30 2021 at 23:50)</a>:</h4>
<blockquote>
<p>rustdoc::differing_only_by_case</p>
</blockquote>
<p>ooh I am so tempted to bikeshed this name but I'll hold off for now <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="232515256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515256">(Mar 30 2021 at 23:50)</a>:</h4>
<p>FWIW if <code>--generate-case-insensitive</code> is permaunstable internal-only and if we don't do the lints and such we don't need an RFC (and we can RFC the lints and such later), but I think it would be good to do so</p>



<a name="232515274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515274">(Mar 30 2021 at 23:50)</a>:</h4>
<p>yeah idgaf about the lint name</p>



<a name="232515348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515348">(Mar 30 2021 at 23:51)</a>:</h4>
<p><span class="user-mention silent" data-user-id="132040">Manish Goregaokar</span> <a href="#narrow/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two/near/232515256">said</a>:</p>
<blockquote>
<p>FWIW if <code>--generate-case-insensitive</code> is permaunstable internal-only and if we don't do the lints and such we don't need an RFC (and we can RFC the lints and such later), but I think it would be good to do so</p>
</blockquote>
<p>hmm, do lints need an RFC? a lot of lints have been added recently and we only did an FCP when they were stabilized</p>



<a name="232515356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515356">(Mar 30 2021 at 23:51)</a>:</h4>
<p>although in general I'm not a fan of "unstable" lints since the names still leak onto stable, I'd rather do an FCP right away</p>



<a name="232515649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232515649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232515649">(Mar 30 2021 at 23:55)</a>:</h4>
<p>(And in general rustdoc's stability story is not great because <a href="http://docs.rs">docs.rs</a> uses nightly)</p>



<a name="232517270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232517270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232517270">(Mar 31 2021 at 00:14)</a>:</h4>
<blockquote>
<p>It is a hard error for <code>#[doc(filename)]</code> files to ever clash with other files when compared case insensitively, so you cannot have <code>#[doc(filename = "bar")] struct Foo;</code> and <code>struct Bar;</code> in the same module.</p>
</blockquote>
<p>This seems inconsistent with the behavior without <code>doc(filename)</code>. Nothing about the <code>doc(filename)</code> feature implies that it has to do with case-insensitive filesystems, although of course that's the motivation here. I think it would make more sense for <code>#[doc(filename = "bar")] struct Foo;</code> to act exactly the same as if the user had written <code>struct bar;</code> except it only affects the URL scheme. So you would get exactly the same disambiguation behavior: a disambiguation page at <code>struct.bar.html</code> is created (if <code>--generate-case-insensitive</code> is on), and the lint is triggered warning about the conflict (not sure if this lint is dependent on <code>--generate-case-insensitive</code>).</p>



<a name="232539216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232539216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232539216">(Mar 31 2021 at 05:37)</a>:</h4>
<p>I'm okay with that, I guess we should just emit another lint.</p>



<a name="232539276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232539276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232539276">(Mar 31 2021 at 05:38)</a>:</h4>
<p><span class="user-mention" data-user-id="232545">@Joshua Nelson</span> no, lints do not need an RFC. I am morally against lints which cannot be _fixed_ (and this is a rough policy rust has), which is why the lint would need to be paired with doc(filename) -- that _does_ need an RFC</p>



<a name="232539284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232539284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232539284">(Mar 31 2021 at 05:38)</a>:</h4>
<p>also: RFC does not imply stability trains</p>



<a name="232539286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232539286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232539286">(Mar 31 2021 at 05:38)</a>:</h4>
<p>RFC just means we're getting input</p>



<a name="232539294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232539294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232539294">(Mar 31 2021 at 05:39)</a>:</h4>
<p>but i'm totally happy with landing disambiguation first, and figuring out the lint and stuff later</p>



<a name="232539305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232539305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232539305">(Mar 31 2021 at 05:39)</a>:</h4>
<p>and doing that as a separate RFC, or a single joined RFC.</p>



<a name="232557081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232557081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232557081">(Mar 31 2021 at 08:59)</a>:</h4>
<p>So in the end, what I was afraid of and didn't want to happen is happening: we add a new <code>doc()</code> attribute...</p>
<p>Anyway, commented on the document.</p>



<a name="232633058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232633058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232633058">(Mar 31 2021 at 17:34)</a>:</h4>
<p>Oh also, how will it work with "--extern-html-root-url"?</p>



<a name="232637025"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232637025" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232637025">(Mar 31 2021 at 18:00)</a>:</h4>
<p>(posting this here instead of on the hackmd because of the unresolved question)</p>
<blockquote>
<p>Should rustdoc ever link to a disambiguation page directly?</p>
<ul>
<li>(manish) IMO it shouldn’t; we should instead maintain a defid-to-file map and use that. This makes the disambiguation pages matter much less.</li>
<li>(guillaume) How would it work for external crates linking to a "conflicted" item?</li>
</ul>
</blockquote>
<p>External crates would need to use the same defid map. It shouldn't be difficult to come up with a numbering scheme that can be reliably replayed: for example sort all items in the case insensitive equivalence class by ascii order and number them in increasing order. Unresolved question: this numbering scheme has to either include private items, in which case adding private items changes public URLs, or else private items need a separate name mangling scheme.</p>



<a name="232638176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232638176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232638176">(Mar 31 2021 at 18:07)</a>:</h4>
<p><span class="user-mention" data-user-id="271719">@Mario Carneiro</span> It doesn't work for the option  "--extern-html-root-url" like I said above</p>



<a name="232638357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232638357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232638357">(Mar 31 2021 at 18:08)</a>:</h4>
<p>I'm not sure how those are related</p>



<a name="232638541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232638541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232638541">(Mar 31 2021 at 18:09)</a>:</h4>
<p>I haven't used it but it looks like "--extern-html-root-url"  is supposed to set the base path for extern rustdoc links, while the stuff in this RFC is about the name mangling scheme for links <em>inside</em> a (possibly extern) crate, relative to the root path for the crate, whatever it is</p>



<a name="232638879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232638879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232638879">(Mar 31 2021 at 18:11)</a>:</h4>
<p>Also <span class="user-mention" data-user-id="210316">@GuillaumeGomez</span> you responded twice on that RFC to <code>doc(filename)</code> with a complaint that can be paraphrased as "no, just no." Could you elaborate on the reasons behind the disapproval?</p>



<a name="232639037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639037">(Mar 31 2021 at 18:13)</a>:</h4>
<p>From my POV it is strictly better to give people an option to tweak behavior rather than not, especially if they don't have to use it and still get reasonable behavior</p>



<a name="232639113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639113">(Mar 31 2021 at 18:13)</a>:</h4>
<p>Because, once again, users shouldn't fix tools limitations. If the code is valid, the users shouldn't have to add such things. I used as comparison <code>doc(cfg)</code>: we are trying to remove it and instead directly extract the information from the code</p>



<a name="232639188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639188">(Mar 31 2021 at 18:14)</a>:</h4>
<p>Well, this proposition has a lot of flaws</p>



<a name="232639191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639191">(Mar 31 2021 at 18:14)</a>:</h4>
<p>They can also silence the lint if they are happy with the disambiguation page</p>



<a name="232639359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639359">(Mar 31 2021 at 18:15)</a>:</h4>
<p>Adding a lint for that sounds like a really bad thing. "Your code is perfectly fine but our tool cannot handle it because it was poorly deisgn so please fix your perfectly fine code"</p>



<a name="232639480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639480">(Mar 31 2021 at 18:15)</a>:</h4>
<p>I'm really unhappy with the proposed solution. The only thing that makes me accept it is that at least it will generate the disambiguator only on windows and macOS</p>



<a name="232639558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639558">(Mar 31 2021 at 18:16)</a>:</h4>
<p>Also, the implementation will be a nightmare at some many level...</p>



<a name="232639741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639741">(Mar 31 2021 at 18:17)</a>:</h4>
<p>I guess you are assuming that the existing naming scheme doesn't need to be respected? I don't think we can move to change it in any significant way until intra-doc links are around for a while longer and everyone migrates</p>



<a name="232639877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639877">(Mar 31 2021 at 18:18)</a>:</h4>
<p>There are still tons of manual intra-doc links out there and changing the naming scheme will break all those links</p>



<a name="232639985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232639985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232639985">(Mar 31 2021 at 18:18)</a>:</h4>
<p>And the naming scheme was even directly taught to people who had to write those links (like me circa 6 months ago)</p>



<a name="232640107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640107">(Mar 31 2021 at 18:19)</a>:</h4>
<p>The fact that there is a naming conflict is a direct consequence of the combination of the naming scheme + case insensitive file systems. Tools have nothing to do with it</p>



<a name="232640174"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640174" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640174">(Mar 31 2021 at 18:20)</a>:</h4>
<p><span class="user-mention silent" data-user-id="271719">Mario Carneiro</span> <a href="#narrow/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two/near/232639741">said</a>:</p>
<blockquote>
<p>I guess you are assuming that the existing naming scheme doesn't need to be respected? I don't think we can move to change it in any significant way until intra-doc links are around for a while longer and everyone migrates</p>
</blockquote>
<p>The whole point of this solution is that it allows to keep the current URL scheme. If we don't care about it, then let's fix it once and for all XD</p>



<a name="232640259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640259">(Mar 31 2021 at 18:20)</a>:</h4>
<p><span class="user-mention silent" data-user-id="271719">Mario Carneiro</span> <a href="#narrow/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two/near/232640107">said</a>:</p>
<blockquote>
<p>The fact that there is a naming conflict is a direct consequence of the combination of the naming scheme + case insensitive file systems. Tools have nothing to do with it</p>
</blockquote>
<p>It's the fault of the tool in the first place for not taking this limitation into consideration.</p>



<a name="232640285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640285">(Mar 31 2021 at 18:20)</a>:</h4>
<p>The tool is not the naming scheme</p>



<a name="232640320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640320">(Mar 31 2021 at 18:21)</a>:</h4>
<p>The tool generates the URL scheme</p>



<a name="232640394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640394">(Mar 31 2021 at 18:21)</a>:</h4>
<p>But the naming scheme is ossified in the minds of programmers who use it and URL links across the web</p>



<a name="232640407"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640407" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640407">(Mar 31 2021 at 18:21)</a>:</h4>
<p>the tool can't do anything about this</p>



<a name="232640445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640445">(Mar 31 2021 at 18:21)</a>:</h4>
<p>It can. The alternative solution I suggested fixed it.</p>



<a name="232640540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640540">(Mar 31 2021 at 18:22)</a>:</h4>
<p>No more naming conflicts on windows/mac and no possible conflicts on modules either</p>



<a name="232640591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640591">(Mar 31 2021 at 18:22)</a>:</h4>
<p>but it would break all the current URLs, and that's why it was rejected</p>



<a name="232640608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640608">(Mar 31 2021 at 18:22)</a>:</h4>
<p>Maybe in an alternate reality where you proposed that pre-1.0 that would work</p>



<a name="232640654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640654">(Mar 31 2021 at 18:22)</a>:</h4>
<p>At the time, I was focusing mostly on compiler errors unfortunately :)</p>



<a name="232640762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640762">(Mar 31 2021 at 18:23)</a>:</h4>
<p>This is certainly a patch on a suboptimal naming scheme, but that's the price of backward compatibility</p>



<a name="232640766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640766">(Mar 31 2021 at 18:23)</a>:</h4>
<p>But I still think it would be possible to switch to this new URL scheme. To make it better, we could simply add a scheme converter on <a href="http://docs.rs">docs.rs</a> and <a href="http://doc.rust-lang.org">doc.rust-lang.org</a> so that old URLs still work in new docs (it's pretty easy in fact)</p>



<a name="232640975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232640975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232640975">(Mar 31 2021 at 18:25)</a>:</h4>
<p>Backward compatibility could be maintained with a URL scheme converter on <a href="http://docs.rs">docs.rs</a> and <a href="http://doc.rust-lang.org">doc.rust-lang.org</a> like I suggested above. But not locally unfortunately</p>



<a name="232641017"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641017" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641017">(Mar 31 2021 at 18:25)</a>:</h4>
<p>Even setting aside backward compatibilty, I think <code>Foo-2</code> looks better than <code>-foo</code> though</p>



<a name="232641079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641079">(Mar 31 2021 at 18:25)</a>:</h4>
<p>But it's incoherent. This can change without prior notice and it's a nightmare to implement</p>



<a name="232641170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641170">(Mar 31 2021 at 18:26)</a>:</h4>
<p>And we didn't even try to look at modules conflicts yet. I'm very curious at how we will fix it in the current suggestion.</p>



<a name="232641199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641199">(Mar 31 2021 at 18:26)</a>:</h4>
<p>Wasn't that addressed in the RFC as well?</p>



<a name="232641221"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641221" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641221">(Mar 31 2021 at 18:26)</a>:</h4>
<p><code>aa-1/index.html</code> and such</p>



<a name="232641296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641296">(Mar 31 2021 at 18:27)</a>:</h4>
<p>For one level eventually, it's fine, but for multiple levels? Oh boy</p>



<a name="232641313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641313">(Mar 31 2021 at 18:27)</a>:</h4>
<p>?</p>



<a name="232641359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641359">(Mar 31 2021 at 18:27)</a>:</h4>
<p><code>aa-1/bb-2/struct.FoO-3.html</code></p>



<a name="232641370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641370">(Mar 31 2021 at 18:27)</a>:</h4>
<p>I'm not seeing the issue</p>



<a name="232641400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641400">(Mar 31 2021 at 18:27)</a>:</h4>
<p>When you change the name of a module, all its children have to take this change into account because it changes their URL too</p>



<a name="232641489"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641489" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641489">(Mar 31 2021 at 18:28)</a>:</h4>
<p>yeah, that is true for normal module renames too</p>



<a name="232641629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641629">(Mar 31 2021 at 18:29)</a>:</h4>
<p>Yep, but then it's expected</p>



<a name="232641674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641674">(Mar 31 2021 at 18:29)</a>:</h4>
<p>But you are changing the name of a module, so the name changes</p>



<a name="232641688"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641688" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641688">(Mar 31 2021 at 18:29)</a>:</h4>
<p>this seems quite expected</p>



<a name="232641703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641703">(Mar 31 2021 at 18:29)</a>:</h4>
<p>if you have <code>a::b::c::d</code> but a is <code>a</code> has a name conflict, then <code>d</code> is at completely different location</p>



<a name="232641744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641744">(Mar 31 2021 at 18:30)</a>:</h4>
<p>different than what?</p>



<a name="232641870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232641870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232641870">(Mar 31 2021 at 18:30)</a>:</h4>
<p><code>a/b/c/d/index.html</code> doesn't exist anymore if any part of the path has a name conflict</p>



<a name="232642082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232642082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232642082">(Mar 31 2021 at 18:31)</a>:</h4>
<p>Anyway, to try to see all differences, I'm writing a little gist: <a href="https://gist.github.com/GuillaumeGomez/a9d5e0d92987599a7966f5363543f81f">https://gist.github.com/GuillaumeGomez/a9d5e0d92987599a7966f5363543f81f</a></p>



<a name="232642100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232642100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232642100">(Mar 31 2021 at 18:31)</a>:</h4>
<p>we'll see where it leads us to</p>



<a name="232642354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232642354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Mario Carneiro <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232642354">(Mar 31 2021 at 18:33)</a>:</h4>
<p>Oh I see, you want a disambiguation page there too. I guess you could make disambiguation pages at all combinations of disambiguated and undisambigated names, although for backward compatibility you only need <code>a/b/c/d/index.html</code> for the disambiguation page and e.g. <code>a-1/b-3/c-2/d-1/index.html</code> for the real thing</p>



<a name="232642486"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232642486" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> GuillaumeGomez <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232642486">(Mar 31 2021 at 18:34)</a>:</h4>
<p>Yes, but you start to see the issue there, no? XD</p>



<a name="232672660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232672660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232672660">(Mar 31 2021 at 22:04)</a>:</h4>
<p>No, you don't need to have disambiguation pages for every combo</p>



<a name="232673881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232673881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232673881">(Mar 31 2021 at 22:15)</a>:</h4>
<p><span class="user-mention" data-user-id="210316">@GuillaumeGomez</span>  Ah, I think I see your issue with modules: Is your worry that _rustdoc_ won't be able to link to disambiguated modules from other crates?</p>
<p>I don't think we have to worry about it -- we can teach rustdoc how to link to this scheme, and for efficiency we can store lists of clashing DefIds in metadata or in a rustdoc cache.</p>



<a name="232673917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232673917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232673917">(Mar 31 2021 at 22:15)</a>:</h4>
<p>basically, if rustdoc needs to link to foo::bar::Baz, it looks up if <code>bar</code> has clashes, then if <code>Baz</code> has clashes</p>



<a name="232673978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232673978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232673978">(Mar 31 2021 at 22:16)</a>:</h4>
<p>this is complicated but doable</p>



<a name="232674448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232674448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232674448">(Mar 31 2021 at 22:20)</a>:</h4>
<p><span class="user-mention" data-user-id="210316">@GuillaumeGomez</span> so from my POV the purpose of the disambiguation page is simple: it's so that you can type the URL you expect and it _sometimes_ works. We don't actually have to even implement it. The purpose of the disambiguation page is emphatically _not_ for rustdoc to ever link to it</p>



<a name="232674496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232674496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232674496">(Mar 31 2021 at 22:20)</a>:</h4>
<p>and rustdoc should be capable of linking to the right thing directly without going via a disambiguation page</p>



<a name="232674514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/266220-rustdoc/topic/Case%20insensitive%20RFC%20take%20two/near/232674514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Manish Goregaokar <a href="https://rust-lang.github.io/zulip_archive/stream/266220-rustdoc/topic/Case.20insensitive.20RFC.20take.20two.html#232674514">(Mar 31 2021 at 22:21)</a>:</h4>
<p>this is doable</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>